// 验证账号
const uPattern = /^([A-Za-z0-9]{4,8}|[\u4e00-\u9fa5]{2,8})$/
export var validateName = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入账号'))
  } else if (!uPattern.test(value)) {
    callback(new Error('请输入4到8位字母,数字;或2到8位中文字符'))
  } else {
    callback()
  }
}

// 验证密码
const passPattern = /^[A-Za-z0-9]{4,10}$/
export var validatePass = (rule, value, callback) => {
  if (value === '') {
    callback(new Error('请输入密码'))
  } else if (!passPattern.test(value)) {
    callback(new Error('长度为4-10位'))
  } else {
    callback()
  }
}

// o就是通过传参过来的vue组件实例,因为直接从那么传参的话,会立即调用那个时候根本没数据,所以先把vue实例传过来
// 因为要自定义传参所以利用了闭包
export var newvalidatePass = (str = '密码', o) => {
  return function(rule, value, callback) {
    if (value === '') {
      callback(new Error('请输入' + str))
    } else if (!passPattern.test(value)) {
      callback(new Error('长度为4-10位'))
    } else {
      if (o.userForm.checkpassword !== '') {
        // 再次调用表单里面checkpassword字段的验证
        o.$refs.ruleForm.validateField('checkpassword')
      }
      callback()
    }
  }
}

// 验证密码是否一致
export var validateCheckPass = data => {
  return function(rule, value, callback) {
    if (value === '') {
      callback(new Error('请输入密码'))
    } else if (value !== data.userForm.newpassword) {
      callback(new Error('两次密码不一致'))
    } else {
      callback()
    }
  }
}
